home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
fb386
/
pickup
/
desocity.bas
< prev
next >
Wrap
BASIC Source File
|
1991-10-18
|
13KB
|
298 lines
9 KEY (1) ON :ON KEY (1) GOSUB 65010:PLAY OFF
10 '
20 ' DESOLATE CITY / by Kazuya Shimada
30 '
40 DEFINT A-Z
50 DIM T(4,9),D(47),V(23)
60 PLAY OFF:BGM 1:LOAD@ "Q:\FJ\PCM\RYM_ALL1.PMB":LOAD@ "Q:\FJ\FM\FM_1.FMB"
70 FOR I=0 TO 13:PART I,I:NEXT I
80 '----
90 GOSUB *READ_DATA
100 ' AF PAN PMS AMS
110 DATA 56, 0, 0, 0, 0, 0, 3, 0, 0, 0
120 ' AR DR SR RR SL TL KS ML DT Chord1
130 DATA 31, 0, 1, 2, 4, 37, 1, 5, 0, 0
140 DATA 31, 1, 2, 6, 4, 32, 1, 2, 0, 0
150 DATA 31, 1, 3, 4, 4, 20, 1, 1, -3, 0
160 DATA 31, 4, 2, 5, 4, 8, 1, 2, 3, 0
170 GOSUB *VOICE_SET:VOICE 1,V,0
180 '----
190 GOSUB *READ_DATA
200 ' AF PAN PMS AMS
210 DATA 58, 0, 0, 0, 0, 0, 3, 0, 0, 0
220 ' AR DR SR RR SL TL KS ML DT Chord2
230 DATA 31, 8, 9, 7, 0, 36, 1, 4, 0, 0
240 DATA 31, 4, 3, 9, 0, 33, 0, 4, 0, 0
250 DATA 31, 4, 3, 9, 0, 32, 0, 4, 0, 0
260 DATA 31, 4, 3, 9, 0, 10, 0, 2, 0, 0
270 GOSUB *VOICE_SET:VOICE 6,V,0
280 '----
290 GOSUB *READ_DATA
300 ' AF PAN PMS AMS
310 DATA 59, 0, 0, 0, 0, 0, 3, 0, 0, 0
320 ' AR DR SR RR SL TL KS ML DT Chord3
330 DATA 31, 0, 2, 0, 5, 36, 1, 2, 0, 0
340 DATA 31, 4, 1, 4, 5, 57, 0, 2, 1, 0
350 DATA 31, 5, 1, 4, 5, 30, 1, 2, 0, 0
360 DATA 31, 4, 1, 8, 5, 6, 0, 2, 0, 0
370 GOSUB *VOICE_SET:VOICE 7,V,0
380 '----
390 GOSUB *READ_DATA
400 ' AF PAN PMS AMS
410 DATA 59, 0, 0, 0, 0, 0, 3, 0, 0, 0
420 ' AR DR SR RR SL TL KS ML DT syn.1
430 DATA 31, 0, 0, 2, 5, 33, 1, 3, 0, 0
440 DATA 31, 7, 8, 3, 3, 30, 1, 2, 0, 0
450 DATA 31, 6, 0, 6, 1, 34, 1, 2, 0, 0
460 DATA 31, 5, 2, 9, 1, 8, 1, 1, 3, 0
470 GOSUB *VOICE_SET:VOICE 2,V,0
480 '----
490 GOSUB *READ_DATA
500 ' AF PAN PMS AMS
510 DATA 56, 0, 0, 0, 0, 0, 3, 0, 0, 0
520 ' AR DR SR RR SL TL KS ML DT syn.2
530 DATA 31, 0, 0, 4, 1, 31, 1, 2, 0, 0
540 DATA 31, 2, 4, 4, 3, 35, 1, 2, 0, 0
550 DATA 31, 2, 3, 4, 1, 32, 1, 2, 0, 0
560 DATA 31, 1, 0, 4, 1, 6, 1, 2, 0, 0
570 GOSUB *VOICE_SET:VOICE 3,V,0
580 '----
590 GOSUB *READ_DATA
600 ' AF PAN PMS AMS
610 DATA 27, 0, 0, 0, 0, 0, 3, 0, 0, 0
620 ' AR DR SR RR SL TL KS ML DT e.bass
630 DATA 31, 15, 14, 9, 2, 49, 1, 8, 0, 0
640 DATA 31, 11, 12, 5, 5, 33, 1, 3, 0, 0
650 DATA 31, 8, 7, 5, 7, 27, 1, 0, -3, 0
660 DATA 31, 6, 5, 7, 3, 6, 1, 0, 3, 0
670 GOSUB *VOICE_SET:VOICE 4,V,0
680 '----
690 GOSUB *READ_DATA
700 ' AF PAN PMS AMS
710 DATA 61, 0, 0, 0, 0, 0, 3, 0, 0, 0
720 ' AR DR SR RR SL TL KS ML DT psg
730 DATA 31, 0, 2, 8, 8, 24, 1, 2, 0, 0
740 DATA 31, 0, 3, 8, 8, 23, 1, 1, 0, 0
750 DATA 31, 0, 3, 8, 8, 23, 1, 1, 0, 0
760 DATA 31, 0, 3, 8, 8, 8, 1, 1, 0, 0
770 GOSUB *VOICE_SET:VOICE 5,V,0
780 '----
790 GOTO 980
800 *VOICE_SET
810 D%(32)=T%(0,0)
820 FOR I%=0 TO 3:J%=I%+1
830 D%( 8+I%)=(T%(J%,8) AND 7)*16+(T%(J%,7) AND 15)
840 D%(12+I%)=(T%(J%,5) AND 127)
850 D%(16+I%)=(T%(J%,6) AND 3)*64+(T%(J%,0) AND 31)
860 D%(20+I%)=T%(J%,1) AND 31
870 D%(24+I%)=T%(J%,2) AND 31
880 D%(28+I%)=(T%(J%,4) AND 15)*16+(T%(J%,3) AND 15)
890 NEXT
900 D%(33)=((T%(0,6) AND 3)*64)+((T%(0,7) AND 3)*16)+((T%(0,8) AND 7)):'D%(34)=0
910 FOR I%=0 TO 47 STEP 2:L&=D%(I%+1)*256+D%(I%)
920 IF L&<&H8000 THEN V%(I%\2)=CINT(L&) ELSE V%(I%\2)=CINT(L&-&H10000)
930 NEXT:RETURN
940 '----
950 *READ_DATA
960 FOR X=0 TO 4:FOR Y=0 TO 9:READ T%(X,Y):NEXT Y:NEXT X
970 RETURN
980 GOSUB 1980
990 T$="T150%CU0Q8"
1000 PLAY T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$,T$
1010 A0$="U0@1V11L2O3DF GA"
1020 B0$="U0@1V11L2O3FA B>C+"
1030 C0$="U0@1V11L2O3A>C DE"
1040 D0$="U25@6%CV10L12O4DFA>DFA<FA>CFA>C <<GB>DGB>D<<A>C+EA>C+E"
1050 E0$="U50@6%CV7L12O4D24&DFA>DFA<FA>CFA>C <<GB>DGB>D<<A>C+EA>C+E24"
1060 F0$="@4V11L12O2D>D<DD>D<DF>F<FF>F<F G>G<GG>G<GA>A<AA>A<A"
1070 G0$="@1V15L4O1ARAR ARAR"
1080 H0$="@1V15L4O2RERE RERE"
1090 H0A$="O2RERE REL12EEEEEEL4"
1100 I0$="@1V15L12O6AAAAAAAAAAAA AAAAAAAAAAAA"
1110 J0$="@1V15L1R R"
1120 J0A$="O6R R2G2"
1130 A1$="L12O4D2<A>CDFED E4C4<A4A>CE D4<B-4G4GB->D L4D-DEF"
1140 B1$="L12O4F2DEFAGF G4E4C4CEG F4D4<B-4B->DF L4EFGA"
1150 C1$="U80@1V9L12O4F2DEFAGF G4E4C4CEG F4D4<B-4B->DF L4EFGA"
1160 D1$="U30V10O4L12A1 GFE&E2C4 D1 L4D-DE<AL12"
1170 E1$="U60V7O4L12A24&A1 GFE&E2C4 D1 L4D-DE<A6&A24L12"
1180 F1$="O2(D>D<D)4 (C>C<C)4 <(B->B-<B-)4 (A>A<AB->B-<B->C>C<CC+>C+<C+"
1190 G1$="O1(ARAR)4"
1200 H1$="O2(RERE)4"
1210 H1A$="O2(RERE)3 RERL12EEEL4"
1220 I1$="O6(AAAAAAAAAAAA)4"
1230 A2$="L12O4D2<A>CDFED L4EAEC DC<B-L12>DC<B- L4AAB>C+"
1240 B2$="L12O4F2DEFAGF L4G>C<GE FEDL12FED L4D-D-DE"
1250 D2$="L1O4A G F E"
1260 E2$="L1O4A24&A G F E2.&E12&E24"
1270 H2$="O2(RERE)3 REL12EEEEEEL4"
1280 A3$="@2V11L12O4DCD&D2DCD <A>CDFEDC2 <B-AB-&B-2B->C<B- L4AB->CC+"
1290 B3$="U90@2V11L12O4DCD&D2DCD <A>CDFEDC2 <B-AB-&B-2B->C<B- L4AB->CC+"
1300 C3$="@6V10L24O4(%LD%RD%LD%RD%LD%RD)4 (%LC%RC%LC%RC%LC%RC)4 <(%LB-%RB-%LB-%RB-%LB-%RB-)4 (%LA%RA%LA)(%RB-%LB-%RB-)>(%LC%RC%LC)(%RC+%LC+%RC+)"
1310 D3$="U50@3V11L1O3D C <B- L4AB->CC+"
1320 E3$="U50@3V11L1O3F E D L4D-D EF"
1330 F3$="O2(D>D<D)4 (C>C<C)4 <(B->B-<B-)4 A>A<AB->B-<B->C>C<CD>D<D"
1340 A4$="L12O4DCD&D2DCD <A>CDFEDC2 <B-AB-&B-2>DDD L4D-DEA"
1350 C4$="O4(%LF%RF%LF%RF%LF%RF)4 (%LE%RE%LE%RE%LE%RE)4 (%LD%RD%LD%RD%LD%RD)4 (%LD-%RD-%LD-)(%RD%LD%RD)(%LE%RE%LE)(%RF%LF%RF)"
1360 D4$="L1O3F E D L4D-DEF"
1370 E4$="L1O3A G F L4EFGA"
1380 F4$="O2(D>D<D)4 (C>C<C)4 <(B->B-<B-)4 >(D->D-<D-)4"
1390 A5$="@5V11L12O4F2CFGB-AG F2G2 G+2E-G+B->D-C<B- G+2A+2"
1400 B5$="U80@5V7L12O4F24&F2CFGB-AG F2G2 G+2E-G+B->D-C<B- G+2A+4&A+6"
1410 D5$="V9L1O2A A >C C"
1420 E5$="V9L1O3C C D+ D+"
1430 F5$="O2((F>F<F)4)2 ((G+>G+<G+)4)2"
1440 A6$="O4B2F+B>C+ED+C+ L4D+<BF+D+ F2.L12FGG+ G+2G2"
1450 B6$="O4B24&B2F+B>C+ED+C+ L4D+<BF+D+ F2.L12FGG+ G+2G4&G6"
1460 D6$="O3D+ D+ <A B2B2"
1470 E6$="O3F+ F+ C D+2E2"
1480 F6$="O1(B>B<B)4 >(D+>D+<D+)4 (F>F<F)4 (C+>C+<C+)2(C>C<C)2"
1490 A7$="@1L12O4V10FEFV8FEFV6FEFV10FEF EDEV8EDEV6EDEV10EDE DCDV8DCDV6DCDV10DCD L4E<A>AG"
1500 B7$="U80@1L12O3V10FEFV8FEFV6FEFV10FEF EDEV8EDEV6EDEV10EDE DCDV8DCDV6DCDV10DCD L4E<A>AG"
1510 D7$="U25@6V10L12O3(FF+GG+AA+B>CC+DD+E)4 "
1520 E7$="U50@6V7L12O3(F24&FF+GG+AA+B>CC+DD+E24)4 "
1530 F7$="O2(F>F<F)4 (E>E<E)4 (D>D<D)4 (C+>C+<C+)4"
1540 A8$="L12O4V10FEFV8FEFV6FEFV10FEF GFG&G4E4C4 E4&E6D&D2 E4&E6D&D2"
1550 B8$="L12O3V10FEFV8FEFV6FEFV10FEF GFG&G4E4C4 E4&E6D&D2 E4&E6D&D2"
1560 D8$="O3(FF+GG+AA+B>CC+DD+E) O5(ED+DC+C<BA+AG+GF+F)"
1570 E8$="O3(F24&FF+GG+AA+B>CC+DD+E) O5(ED+DC+C<BA+AG+GF+F24)"
1580 F8$="O2(F>F<F)4 (G>G<G)4 ((E>E<E)2(D>D<D)2)2"
1590 A9$="@1V9L12O4FFFFFFFFFFFF E-E-E-E-E-E-<B-B-B-B-B-B- >E-E-E-E-E-E-D-D-D-D-D-D- CCC<B-B-B-A-A-A-GGG"
1600 B9$="U90@1V9L12O3FFFFFFFFFFFF E-E-E-E-E-E-<B-B-B-B-B-B- >E-E-E-E-E-E-D-D-D-D-D-D- CCC<B-B-B-A-A-A-GGG"
1610 D9$="U0@6%CV9L2O4A-A- B-B- GG A-G"
1620 E9$="U120@6%CV9L2O4A-A- B-B- GG A-G"
1630 F9$="O2(D->D-<D->D-<D->D-<) (E->E-<E->E-<E->E-<) (E->E-<E->E-<E->E-<) (C>C<C>C<C>C<)"
1640 A10$="O4FFFFFFFFFFFF GGGGGGE-E-E-E-E-E- FFFFFFFFFFFF F1"
1650 B10$="O3FFFFFFFFFFFF GGGGGGE-E-E-E-E-E- FFFFFFFFFFFF F1"
1660 D10$="O4A-A- B-G B-B- A&A"
1670 F10$="O2(D->D-<D->D-<D->D-<) (C>C<C>C<C>C<) <(B->B-<B->B-<B->B-<) (A>A<A>A<A>A<)"
1680 G3$="(ARAR)2"
1690 H3$="(RERE)2"
1700 H4$="RERE REL12EEEEEE "
1710 PLAY A0$,B0$,C0$,D0$,E0$,F0$,G0$,H0$,I0$,J0$
1720 PLAY A0$,B0$,C0$,D0$,E0$,F0$,G0$,H0$,I0$,J0$
1730 PLAY A0$,B0$,C0$,D0$,E0$,F0$,G0$,H0$,I0$,J0$
1740 PLAY A0$,B0$,C0$,D0$,E0$,F0$,G0$,H0A$,I0$,J0A$
1750 PLAY A1$,B1$,C1$,D1$,E1$,F1$,G1$,H1$,I1$
1760 PLAY A2$,B2$,B2$,D2$,E2$,F1$,G1$,H1$,I1$
1770 PLAY A1$,B1$,C1$,D1$,E1$,F1$,G1$,H1$,I1$
1780 PLAY A2$,B2$,B2$,D2$,E2$,F1$,G1$,H1A$,I1$
1790 PLAY A3$,B3$,C3$,D3$,E3$,F3$,G1$,H1A$,I1$
1800 PLAY A4$,A4$,C4$,D4$,E4$,F4$,G1$,H2$,I1$
1810 PLAY A5$,B5$,C5$,D5$,E5$,F5$,G1$,H1A$,I1$
1820 PLAY A6$,B6$,C6$,D6$,E6$,F6$,G1$,H1A$,I1$
1830 PLAY A7$,B7$,C7$,D7$,E7$,F7$,G1$,H1A$,I1$
1840 PLAY A7$,B7$,C7$,D7$,E7$,F7$,G1$,H1A$,I1$
1850 PLAY A7$,B7$,C7$,D7$,E7$,F7$,G1$,H1A$,I1$
1860 PLAY A8$,B8$,C8$,D8$,E8$,F8$,G1$,H1A$,I1$
1870 PLAY A3$,B3$,C3$,D3$,E3$,F3$,G1$,H1A$,I1$
1880 PLAY A4$,A4$,C4$,D4$,E4$,F4$,G1$,H2$,I1$
1890 PLAY A5$,B5$,C5$,D5$,E5$,F5$,G1$,H1A$,I1$
1900 PLAY A6$,B6$,C6$,D6$,E6$,F6$,G1$,H1A$,I1$
1910 PLAY A5$,B5$,C5$,D5$,E5$,F5$,G1$,H1A$,I1$
1920 PLAY A6$,B6$,C6$,D6$,E6$,F6$,G1$,H1A$,I1$
1930 PLAY A9$,B9$,C9$,D9$,E9$,F9$,G1$,H1A$,I1$
1940 PLAY A10$,B10$,C10$,D10$,D10$,F10$,G1$,H2$,I1$
1950 PLAY A11$,B11$,C11$,D0$,E0$,F0$,G3$,H3$,I0$
1960 PLAY A11$,B11$,C11$,D0$,E0$,F0$,G3$,H4$,I0$
1970 GOTO 1710
1980 GOSUB *SCREEN
2070 I$=INKEY$
2080 IF I$="" THEN 2070
2090 GOSUB *F_OUT:SCREEN@ 1:CLS
2100 PASTEL 96
2110 FOR I=0 TO 31
2120 LINE(0,I*6)-(319,I*6+5),PSET,[0,I*8,0],BF
2130 NEXT
2140 FOR I=0 TO 31
2150 LINE(0,I*6)-(319,I*6+5),PASTEL,[0,0,255-I*8],BF
2160 NEXT
2170 LINE(0,192)-(319,239),PSET,[32,128,0],BF
2180 X=0
2190 VX=RND*16:Y=RND*16
2200 LINE(X,192-Y)-(X+VX-1,192),PSET,[32,72,0],BF
2210 X=X+VX:IF X<320 THEN 2190
2220 FOR I=1 TO 100
2230 X=RND*320:Y=RND*90:C=RND*6+1
2240 PSET(X,Y),C
2250 NEXT
2260 SYMBOL(1,0),"DESOLATE CITY",.8!,1,2
2270 SYMBOL(0,1),"DESOLATE CITY",.8!,1,2
2280 SYMBOL(1,1),"DESOLATE CITY",.8!,1,2
2290 SYMBOL(0,0),"DESOLATE CITY",.8!,1,6
2300 RETURN
17000 *SCREEN
17010 SCREEN@ 0 : PALETTE@
17020 FOR I=0 TO 15 : PALETTE I,[0,0,0] : NEXT
17030 COLOR ,%5 : CLS
17040 X=630 : Y=30 : MX=2 : MY=3: R=3 : C1=1 : C2=5 : C3=15 : F=16
17050 ST$="PICK UP TOWNS" : GOSUB *STR_PUT
17060 X=575 : Y=30 : MX=2 : MY=3 : R=3 : C1=1 : C2=5 : C3=15 : F=16
17070 ST$="MUSIC PROGRAM" : GOSUB *STR_PUT
17080 GOSUB *F_IN : FOR I=0 TO 2000 : NEXT
17090 X1=10 : X2=510 : Y1=10 : Y2=460 : C1=1 : C2=6 : C3=15
17100 GOSUB *WAKU
17110 X1=20 : X2=500 : Y1=20 : Y2=90 : C1=15 : C2=7 : C3=5
17120 GOSUB *WAKU
17130 X1=20 : X2=500 : Y1=420 : Y2=450 : C1=15 : C2=7 : C3=5
17140 GOSUB *WAKU
17150 X1=20 : X2=500 : Y1=100 : Y2=410 : C1=15 : C2=7 : C3=5
17160 GOSUB *WAKU
17170 SYMBOL (30,430),"PF1キーを押すと、演奏を中断して音楽MENUに戻ります。",1,1,0,,,1
17180 SYMBOL (30,30)," TITLE ",1,1,0,0,PSET,17
17190 SYMBOL (80,53),"DESOLATE CITY -荒れ果てた街-",1,2,0,0,PSET,1
17200 SYMBOL (30,110)," DATA ",1,1,0,0,PSET,17
17210 SYMBOL (80,140),"Programed by KAZAYA SHIMADA",1,1,0,0,PSET,1,1
17220 SYMBOL (80,160)," Composed by KAZUYA SHIMADA",1,1,0,0,PSET,1,1
17230 SYMBOL (30,200)," MESSAGE ",1,1,0,0,PSET,17
17240 'ST$()="・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
17250 ST$(0)="何だこの曲は!スキームのまねじゃないか!とおもわれるで"
17260 ST$(1)="しょうが、そのとおりです。(だってスキームすきなんだも"
17270 ST$(2)="ん)途中お聴き苦しいところが多々あると思いますが、耳栓"
17280 ST$(3)="でもつけて、お聴き下さい。"
17290 ST$(4)=""
17300 ST$(5)="リターンキー、または実行キーを押すと曲が始まります。"
17310 ST$(6)=""
17320 ST$(7)=""
17330 GOSUB *MESSAGE
17340 RETURN
17350 *STR_PUT
17360 SYMBOL (X,Y),ST$,MX,MY,%C1,R,PSET,F
17370 SYMBOL (X+1,Y),ST$,MX,MY,%C1,R,PSET,F
17380 SYMBOL (X+2,Y),ST$,MX,MY,%C1,R,PSET,F
17390 SYMBOL (X+2,Y-1),ST$,MX,MY,%C1,R,PSET,F
17400 SYMBOL (X+2,Y-2),ST$,MX,MY,%C1,R,PSET,F
17410 SYMBOL (X,Y-2),ST$,MX,MY,%C3,R,PSET,F
17420 SYMBOL (X+1,Y-2),ST$,MX,MY,%C3,R,PSET,F
17430 SYMBOL (X,Y-1),ST$,MX,MY,%C3,R,PSET,F
17440 SYMBOL (X+1,Y-1),ST$,MX,MY,%C2,R,PSET,F
17450 RETURN
17460 *WAKU
17470 LINE (X1+2,Y1+2)-(X2-2,Y2-2),PSET,%C2,BF
17480 CONNECT (X1,Y2)-(X1,Y1)-(X2,Y1),%C3
17490 CONNECT (X1+1,Y2-1)-(X1+1,Y1+1)-(X2-1,Y1+1),%C3
17500 CONNECT (X1+1,Y2)-(X2,Y2)-(X2,Y1+1),%C1
17510 CONNECT (X1+2,Y2-1)-(X2-1,Y2-1)-(X2-1,Y1+2),%C1
17520 RETURN
17530 *MESSAGE
17540 FOR I=0 TO 7
17550 SYMBOL (50,230+20*I),ST$(I),1,1,0,0,PSET,1
17560 NEXT I
17570 RETURN
17580 *F_OUT
17590 FOR I=16 TO 1 STEP -1 : GOSUB *PALETTE : NEXT I :COLOR ,%0 : CLS:RETURN
17600 *F_IN
17610 FOR I=1 TO 16 : GOSUB *PALETTE : NEXT I : RETURN
17620 *PALETTE
17630 PALETTE 1,[0*I,0*I,1*I]
17640 PALETTE 2,[1*I,0*I,2*I]
17650 PALETTE 3,[2*I,1*I,3*I]
17660 PALETTE 4,[4*I,2*I,6*I]
17670 PALETTE 5,[8*I,6*I,9*I]
17680 PALETTE 6,[12*I,10*I,13*I]
17690 PALETTE 7,[14*I,13*I,15*I]
17700 PALETTE 15,[15*I,15*I,15*I]
17710 RETURN
65000 BGM 0:PLAY "R64":BGM 1
65010 KEY (1) OFF:PLAY OFF:FOR I=0 TO 13:PART I,I:NEXT:RUN"MENU.BAS"